package com.ruibang.glass.material.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruibang.glass.material.domain.req.ApproveProcessReq;
import com.ruibang.glass.material.domain.req.MaterialALLInventoryManagementReq;
import com.ruibang.glass.material.domain.req.ycl.MaterialInventoryReq;
import com.ruibang.glass.material.dto.MaterialALLInventoryManagementDTO;
import com.ruibang.glass.material.entity.MaterialALLInventoryManagement;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 原材料库存管理表 服务类
 * </p>
 *
 * @author mameng
 * @since 2024-04-01
 */

public interface GMaterialALLInventoryManagementService extends IService<MaterialALLInventoryManagement> {
    /**
     * 原材料库存管理表 服务实现类
     *
     * @param materialInventoryReq
     * @return
     */
    IPage<MaterialALLInventoryManagement> getPage(MaterialInventoryReq materialInventoryReq);

    IPage<MaterialALLInventoryManagement> getCheckPageList(MaterialInventoryReq materialInventoryReq);

    Map<String, Map<String, List<MaterialALLInventoryManagementDTO>>> getMaterialALLInventoryManagementDTO();

    String approveProcess(ApproveProcessReq processReq);

    List<MaterialALLInventoryManagement> getByMaterialCode(List<String> materialCodes);


    List<String> newPcSelectList();

    MaterialALLInventoryManagement getNewPcNumberList(String aTypeCode);

    List<MaterialALLInventoryManagement> getMaterialLocationSelectList();

    List<MaterialALLInventoryManagement> getMaterialLocationByItemCode(String itemCode);

    List<MaterialALLInventoryManagementDTO> getYclLocationMaterial(String barcodeNumber, String batchNumber);

    List<MaterialALLInventoryManagementDTO> getYclMaterialList();

    MaterialALLInventoryManagement getMaterialALLInventoryManagementByPcNumber(String pcNumber);

    void updateFrozenQuantity(List<MaterialALLInventoryManagementReq> materialALLInventoryManagementReqList);

    void removeFrozenQuantity(List<MaterialALLInventoryManagementReq> materialALLInventoryManagementReqList);

    Map<String, String> getExMap();


}
